]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
calendar: Use binding for clearButton visibility
authorMarco Trevisan (Treviño) <mail@3v1n0.net>
Sat, 31 Aug 2019 18:43:05 +0000 (20:43 +0200)
committerFlorian Müllner <florian.muellner@gmail.com>
Mon, 9 Sep 2019 19:28:18 +0000 (19:28 +0000)
When the calendar PlaceHolder is visible, the ClearButton shouldn't
be. Instead of setting the visibility explicitly, we can use a property
binding.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700

js/ui/calendar.js

index 2a4214e60f0cd016aa68e8c2f2828064ee9439fa..4de3965acfe4799ecda1b2b6100d725ae00e023c 100644 (file)
@@ -1,7 +1,7 @@
 // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
 /* exported Calendar, CalendarMessageList */
 
-const { Clutter, Gio, GLib, Shell, St } = imports.gi;
+const { Clutter, Gio, GLib, GObject, Shell, St } = imports.gi;
 const Signals = imports.signals;
 
 const Main = imports.ui.main;
@@ -1075,6 +1075,10 @@ var CalendarMessageList = class CalendarMessageList {
         });
         box.add_actor(this._clearButton);
 
+        this._placeholder.actor.bind_property('visible',
+            this._clearButton, 'visible',
+            GObject.BindingFlags.INVERT_BOOLEAN);
+
         this._sectionList = new St.BoxLayout({ style_class: 'message-list-sections',
                                                vertical: true,
                                                y_expand: true,
@@ -1145,7 +1149,6 @@ var CalendarMessageList = class CalendarMessageList {
 
         let empty = sections.every(s => s.empty || !s.actor.visible);
         this._placeholder.actor.visible = empty;
-        this._clearButton.visible = !empty;
 
         let canClear = sections.some(s => s.canClear && s.actor.visible);
         this._clearButton.reactive = canClear;